package com.edoomath.api.servcice;

import java.util.List;

import com.edoomath.api.entity.SigninRequest;
import com.edoomath.entity.course.UserCourseTaskMedia;
import com.edoomath.entity.usercourse.UserCourseItem;
import com.edoomath.entity.usercourse.UserCourseMaterialCategory;
import com.edoomath.entity.usercourse.UserCourseStat;
import com.edoomath.entity.usercourse.UserCourseTask;

/**
 * 
 * @author mohanlan
 *
 */
public interface UserCourseItemService  extends DataService<UserCourseItem>{
	
	/**
	 * 
	 * @param id
	 * @return
	 */
	public UserCourseTask loadTask(Long id);
	
	/**
	 * 
	 * @param task
	 * @return
	 */
	public List<UserCourseTaskMedia> listMedias(UserCourseTask task);
	
	/**
	 * 
	 * @param unionid
	 * @return
	 */
	public List<UserCourseMaterialCategory> listUserCourseMaterialCategory(String unionid);
	
	/**
	 * 
	 * @param userCourseStat
	 * @param userCourseItem
	 * @param userCourseTask
	 * @param images
	 * @param voice
	 * @param times
	 * @param voiceSeconds
	 * @param formId
	 */
	public void signin(UserCourseStat userCourseStat, UserCourseItem userCourseItem, UserCourseTask userCourseTask, List<String> images, String voice, String times, Integer voiceSeconds, String formId);
	
	/**
	 * 
	 * @param userCourseStat
	 * @param userCourseItem
	 * @param userCourseTask
	 * @param signinRequest
	 */
	public void signin(UserCourseStat userCourseStat, UserCourseItem userCourseItem, UserCourseTask userCourseTask, SigninRequest signinRequest);
	
	/**
	 * 
	 * @param userCourseStat
	 * @param userCourseItem
	 * @param userCourseTask
	 * @param images
	 * @param voice
	 * @param times
	 * @param voiceSeconds
	 * @param formId
	 */
	public void reSignin(UserCourseStat userCourseStat, UserCourseItem userCourseItem, UserCourseTask userCourseTask, List<String> images, String voice, String times, Integer voiceSeconds, String formId);
	
	/**
	 * 
	 * @param userCourseStat
	 * @param userCourseItem
	 * @param userCourseTask
	 * @param signinRequest
	 */
	public void reSignin(UserCourseStat userCourseStat, UserCourseItem userCourseItem, UserCourseTask userCourseTask, SigninRequest signinRequest);
	
}
